package com.example.proxytest.proxy.staticproxy;

import com.example.proxytest.proxy.MyTransaction;
import com.example.proxytest.proxy.PersonService;
import com.example.proxytest.proxy.PersonServiceImpl;

/* ━━━━━━佛祖保佑━━━━━━
 *                  ,;,,;
 *                ,;;'(    社
 *      __      ,;;' ' \   会
 *   /'  '\'~~'~' \ /'\.)  主
 * ,;(      )    /  |.     义
 *,;' \    /-.,,(   ) \    码
 *     ) /       ) / )|    农
 *     ||        ||  \)
 *     (_\       (_\
 * ━━━━━━永无BUG━━━━━━
 * @author ：zjq
 * @date ：2020/9/7 14:56
 * @description: TODO 静态代理
 *                缺点 ：
 *                1、假设一个系统中有100个Service，则需要创建100个代理对象
                  2、如果一个Service中有很多方法需要事务（增强动作），发现代理对象的方法中还是有很多重复的代码
                  3、由第一点和第二点可以得出：静态代理的重用性不强
 * @version: V1.0
 * @slogan: 天下风云出我辈，一入代码岁月催
 */
public class Main {
    public static void main(String[] args) {

        PersonService personService = new PersonServiceImpl();
        MyTransaction transaction = new MyTransaction();

        PersonService p = new PersonServiceProxy(personService, transaction);

        p.savePerson();
    }
}
